perm filename FLOP4.SAI[11,ALS] blob
sn#068798 filedate 1973-10-29 generic text, type T, neo UTF8
00010 BEGIN "FLIPS"
00020 DEFINE ⊂="COMMENT"; ⊂ AUG.2,1973;
00030 DEFINE ⊃="";
00040 INTEGER I,J,K,L,M,N,P,PP,Q,R,POINTX,POINTY,STATE,DELTA,VAL,CHAN1,EOF;
00045 INTEGER DVAL,DDVAL,DDDVAL,DK,DDK,DDDK;
00050 INTEGER ARRAY BUF,FLOPS[0:511];
00060 STRING FILEN,READ,READ1,FILEO,READ2,FILEQ;
00070 DEFINE CR="'15",LF="'12",TB="'11",CRLF="CR&LF";
00080 ⊂ STATE=0 means on way up
00090 STATE=1 means on way down;
00100
00110 PROCEDURE OUTALL(STRING S);
00120 BEGIN
00130 STRING SS; INTEGER J;
00140 SETBREAK(18,0,NULL,"OSN");
00150 SS←SCAN(S,18,J);
00160 OUTSTR(SS);
00170 END;
00180
00190 FILEN←"HI20.001[CMP,JH]";
00200 FILEO←"SEG1.FRI";
00210 POINTY←POINT(6,FLOPS[0],-1);
00220 OUTSTR("Specify DELTA (CR for 15) ");
00230 IF (READ←INCHWL)="" THEN DELTA←15 ELSE DELTA←CVD(READ);
00240 CHAN1←1;
00250 FOR PP←1 STEP 1 UNTIL 26 DO BEGIN "FILEREAD"
00260 CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,10,0,0,0,EOF);
00270 SETFORMAT(-3,0); FILEQ←CVS(PP);
00280
00290
00300 FILEN←FILEN[1 TO 5]&FILEQ&"[CMP,JH]";
00310 SETFORMAT(1,0); FILEQ←CVS(PP);
00320 FILEO←FILEO[1 TO 3]&FILEQ&".FRI";
00330 OUTSTR(CRLF&FILEN); OUTSTR(TB&FILEO); OUTSTR(CRLF);
00340 LOOKUP(CHAN1,FILEN,0);
00350 J←K←L←STATE←VAL←R←0;
00360 SETFORMAT(6,0);
00370 ⊃ FOR I←0 STEP 1 UNTIL 9 DO OUTSTR(CVS(I)); OUTSTR(CRLF&LF);
00380 Q←0;P←1; ⊃ OUTSTR(CVS(Q)&TB&" ");
00390 WHILE EOF=0 DO BEGIN
00400 FOR J←0 STEP 1 UNTIL 511 DO BUF[J]←0;
00410 ARRYIN(CHAN1,BUF[0],512);
00420 POINTX←POINT(12,BUF[0],-1);
00430 FOR I←0 STEP 1 UNTIL 11 DO BEGIN
00440 M←0;
00450 FOR J←0 STEP 1 UNTIL 127 DO BEGIN
00460 VAL←ILDB(POINTX); IF VAL>2047 THEN VAL←VAL-4096;
00470 DVAL←VAL-K; DDVAL←DVAL-DK; DDDVAL←DDVAL-DDK;
00475 IF STATE=0 THEN BEGIN
00480 IF DDDVAL<DDDK-DELTA THEN BEGIN
00485 M←M+(DDDK-DDDVAL); STATE←-1; END; END ELSE
00490 IF DDDVAL>DDDK+DELTA THEN BEGIN
00495 M←M+(DDDVAL-DDDK); STATE←0; END;
00500 K←VAL; DK←DVAL;DDK←DDVAL; DDDK←DDDVAL;
00510 END;
00515 N←M%400; IF M>63 THEN M←63;
00560 IDPB(N,POINTY); R←R+1;
00570 ⊃ IF N>0 THEN OUTSTR(CVS(N)) ELSE OUTSTR(" ");
00580 IF (P MOD 10)=9 THEN BEGIN Q←Q+10;
00590 ⊃ OUTSTR(CRLF&CVS(Q)&TB); P←0; END ELSE P←P+1;
00600 END;
00610 END;
00620
00630 CLOSE(CHAN1); OPEN(CHAN1,"DSK",'10,0,10,0,0,0);
00640 ENTER(CHAN1,FILEO,0); R←R%6+2;
00650 ARRYOUT(CHAN1,FLOPS[0],R); RELEASE(CHAN1);
00660
00670 END "FILEREAD";
00680 END "FLIPS";